/**
  CNOK project, Anyang Normal University, IMP-CAS
  \brief Calculate inclusive Rs=sigma_exp/sigma_th for -p of C12-16.
  \author SUN Yazhou, asia.rabbit@163.com
  \since 2022/08/27
  \date Last modified: 2022/08/27 by SUN Yazhou
  \copyright 2020-2023 SUN Yazhou
  \copyright CNOK project, Anyang Normal University, IMP-CAS
*/

#include <vector>
#include "TANucleus.h"

using std::vector;

static const int FNNPAR = 1; // 0: Horiuchi; 1: LenziRay
static const bool PAULI = false; // 0: off; 1: on
// static const double EK = 2100.; // incident energy: MeV/nucleon

int main(int argc, char const *argv[]){
  vector<TANucleus *> cv;
  TANucleus *t;

  // C12 //
  // n, sp, sn, cs, dcs, isp=true
  cv.push_back(t = new TANucleus(12, 15.9567, 18.7207, 64.3297, 5.5536));
  t->SetBaseDir("config/C-p/C12");
  t->SetOrbit({"0p1/2_1/2-", "0p3/2_3/2-_1", "0p3/2_3/2-_2", "0p3/2_3/2-_3",
  "0p3/2_3/2-_4", "0d3/2_3/2+_1", "0d3/2_3/2+_2", "1s1/2_1/2+_1", "1s1/2_1/2+_2",
  "0d5/2_5/2+"});
  t->SetEx({2.1247, 0., 5.0203, 8.6501, 10.262, 7.9778, 9.873, 6.7918, 9.820, 7.28551});
  t->SetC2S({0.7229, 2.8594, 0.1548, 0.0005, 0.0123, 0.0315, 0.0109, 0.0024, 0., 0.0630}); // wbp

  // C13 //
  cv.push_back(t = new TANucleus(13, 17.5334, 4.9463, 39.4451, 5.9596));
  t->SetBaseDir("config/C-p/C13");
  t->SetOrbit({"0p1/2_1+", "0p1/2_0+", "0p3/2_1+", "0p3/2_2+", "0d3/2_2-",
  "0d3/2_1-", "1s1/2_1-", "0d5/2_2-"});
  t->SetEx({0., 2.723, 0., 0.95314, 1.67365, 2.6208, 2.6208, 1.67365});
  t->SetC2S({0.0180, 0.1424, 1.0775, 1.9888, 0.0001, 0.0022, 0.0007, 0.0041});

  // C14 //
  cv.push_back(t = new TANucleus(14, 20.8310, 8.1764, 41.3081, 2.7340));
  t->SetBaseDir("config/C-p/C14");
  t->SetOrbit({"0p1/2_1/2-", "0p3/2_3/2-_1", "0p3/2_3/2-_2", "1s1/2_1/2+_1", "1s1/2_1/2+_2"});
  t->SetEx({3.7126, 0., 3.5346, 3.4828, 4.829});
  t->SetC2S({0.1852, 3.5146, 0.0029, 0.0026, 0.0014});

  // C15 //
  cv.push_back(t = new TANucleus(15, 21.0795, 1.2181, 28.3508, 2.7842));
  t->SetBaseDir("config/C-p/C15");
  t->SetOrbit({"0p1/2_1-", "0p3/2_1-", "0p3/2_2-"});
  t->SetEx({0.654, 0.654, 0.});
  t->SetC2S({0.0013, 1.1651, 1.6084});

  // C16 //
  cv.push_back(t = new TANucleus(16, 22.5531, 4.2503, 18.1660, 1.9852));
  t->SetBaseDir("config/C-p/C16");
  t->SetOrbit({"0p3/2_3/2-"});
  t->SetEx({0.});
  t->SetC2S({2.8476});



  for(auto &t : cv){
    // t->SetPauli(PAULI);
    // t->SetEk(EK);
    // t->SetFNNParOpt(FNNPAR);

    // if(t->GetA() == 16.)
      t->Rs();
  } // end for

  return 0;
} // end the main function
